#!/bin/bash
# Notepad-- Linux 系统集成安装脚本
set -e

echo "=========================================="
echo "  Notepad-- 系统集成安装程序"
echo "=========================================="
echo ""

# 检测安装位置
if [ "$EUID" -eq 0 ]; then
    echo "✓ 以管理员权限运行（系统级安装）"
    APPS_DIR="/usr/share/applications"
    META_DIR="/usr/share/metainfo"
    ICON_DIR="/usr/share/icons/hicolor/256x256/apps"
    NEED_SUDO=""
else
    echo "✓ 以用户权限运行（用户级安装）"
    APPS_DIR="$HOME/.local/share/applications"
    META_DIR="$HOME/.local/share/metainfo"
    ICON_DIR="$HOME/.local/share/icons/hicolor/256x256/apps"
    NEED_SUDO=""
    
    # 创建必要的目录
    mkdir -p "$APPS_DIR" "$META_DIR" "$ICON_DIR"
fi

# 检查源文件是否存在
if [ ! -f "src/linux/usr/share/applications/NotePad--.desktop" ]; then
    echo "✗ 错误：找不到 .desktop 文件"
    echo "  请确保在 Notepad-- 源代码根目录运行此脚本"
    exit 1
fi

echo ""
echo "安装位置："
echo "  应用程序：$APPS_DIR"
echo "  元数据：  $META_DIR"
echo "  图标：    $ICON_DIR"
echo ""

# 复制桌面文件
echo "[1/4] 安装桌面文件..."
cp -v src/linux/usr/share/applications/NotePad--.desktop "$APPS_DIR/"
chmod 644 "$APPS_DIR/NotePad--.desktop"

# 复制 metainfo 文件
echo ""
echo "[2/4] 安装元数据文件..."
cp -v src/linux/usr/share/metainfo/io.gitee.cxasm.notepad--.metainfo.xml "$META_DIR/"
chmod 644 "$META_DIR/io.gitee.cxasm.notepad--.metainfo.xml"

# 复制图标文件（尝试多个可能的位置）
echo ""
echo "[3/4] 安装图标文件..."
ICON_FOUND=0
for icon_path in "src/Resources/notepad--.png" "src/linux/usr/share/pixmaps/notepad--.png" "src/notepad/notepad--.png"; do
    if [ -f "$icon_path" ]; then
        cp -v "$icon_path" "$ICON_DIR/notepad--.png"
        chmod 644 "$ICON_DIR/notepad--.png"
        ICON_FOUND=1
        break
    fi
done

if [ $ICON_FOUND -eq 0 ]; then
    echo "  ⚠ 警告：未找到图标文件，跳过图标安装"
fi

# 更新数据库
echo ""
echo "[4/4] 更新系统数据库..."

if [ "$EUID" -eq 0 ]; then
    update-desktop-database "$APPS_DIR/" && echo "  ✓ 桌面数据库已更新"
    if command -v gtk-update-icon-cache &> /dev/null; then
        gtk-update-icon-cache -f -t /usr/share/icons/hicolor/ 2>/dev/null && echo "  ✓ 图标缓存已更新" || echo "  ⚠ 图标缓存更新失败（可忽略）"
    fi
else
    update-desktop-database "$APPS_DIR/" && echo "  ✓ 桌面数据库已更新"
    if command -v gtk-update-icon-cache &> /dev/null; then
        gtk-update-icon-cache -f -t "$HOME/.local/share/icons/hicolor/" 2>/dev/null && echo "  ✓ 图标缓存已更新" || echo "  ⚠ 图标缓存更新失败（可忽略）"
    fi
fi

# 验证安装
echo ""
echo "验证安装..."
if command -v desktop-file-validate &> /dev/null; then
    if desktop-file-validate "$APPS_DIR/NotePad--.desktop" 2>&1; then
        echo "  ✓ Desktop 文件格式验证通过"
    else
        echo "  ⚠ Desktop 文件验证有警告（通常可以忽略）"
    fi
else
    echo "  ⚠ 未安装 desktop-file-validate，跳过验证"
fi

echo ""
echo "=========================================="
echo "  ✓ 安装完成！"
echo "=========================================="
echo ""
echo "现在您可以："
echo "  1. 在应用程序菜单中找到 Notepad--"
echo "  2. 右键点击文本文件 → '打开方式' → 选择 Notepad--"
echo "  3. 运行命令启动：gtk-launch NotePad--"
echo ""
echo "设置为默认文本编辑器："
echo "  xdg-mime default NotePad--.desktop text/plain"
echo ""
echo "批量设置默认关联："
echo "  ./set-default-associations.sh"
echo ""
echo "注意：某些桌面环境可能需要注销并重新登录才能生效"
echo ""

